package com.bto.solar.work.constant;

import java.util.Arrays;
import java.util.List;

/**
 * @description:  数据库相关产量定义
 * @author 王小波
 * @date 2023/7/11 10:05
 */
public class DBConstants {
    /**
     * 功能描述:  开启/有效
     */
    public static final  Byte BYTE_ENABLE = 1;
    /**
     * 功能描述:  关闭/无效
     */
    public static final  Byte BYTE_DISABLE = 0;

    /**
     * 功能描述:  账号待审核
     */
    public static final  Byte BYTE_AUDITED_PENDING = 0;
    /**
     * 功能描述:  账号审核通过
     */
    public static final  Byte BYTE_AUDITED_PASS = 1;

    /**
     * 功能描述:  账号审核不通过
     */
    public static final  Byte BYTE_AUDITED_UNPASS = 2;



    /**-------------------------订单类型-----------------------**/
    /**
     * 业务类型用户
     */
    public static final String BIZ_TYPE_YH = "YH";

    /**
     * 业务类型 工商业
     */
    public static final String BIZ_TYPE_GSY = "GSY";
    /**
     * 业务类型整县推进
     */
    public static final String BIZ_TYPE_ZX = "ZX";
    /**
     * 业务类型真租顶
     */
    public static final String BIZ_TYPE_ZZD = "ZZD";



    /**
     * 权限前缀：可创建业务的分组名称
     */
    public static final String CREATE_ORDER_CATEGORY_GROUP = "biz";


    /******************************公司类型******************************/

    /**
     * 公司类型：总部类型
     */
    public static final String COMPANY_TYPE_HEAD_OFFICE = "ZBGS";

    /**
     * 总部：广东博通新能源股份有限公司
     */
    public static final String COMPANY_ZBGS_NAME = "广东博通新能源科技有限公司";

    /**
     * 公司类型：分公司类型
     */
    public static final String COMPANY_TYPE_BRANCH_OFFICE = "FBGS";



    /**
     * 公司类型：代理商
     */
    public static final String COMPANY_TYPE_AGENT = "DLS";

    /**
     * 公司类型：整县
     */
    public static final String COMPANY_TYPE_UNIT = "ZX";

    /**
     * 公司类型：项目部
     */
    public static final String COMPANY_TYPE_PROJECT = "XMB";





    /**
     * 地区等级-省份
     */
    public static final Byte AREA_LEVEL_ONE = 1;

    /**
     * 地区等级-城市
     */
    public static final Byte AREA_LEVEL_TWO = 2;

    /**
     * 地区等级-区/县
     */
    public static final Byte AREA_LEVEL_THREE = 3;

    /**
     * 公司类型数组
     */
    public static final List<String> COMPANY_TYPE_ARRAY = Arrays.asList(
            COMPANY_TYPE_HEAD_OFFICE,
            COMPANY_TYPE_BRANCH_OFFICE,
            COMPANY_TYPE_UNIT,
            COMPANY_TYPE_AGENT,
            COMPANY_TYPE_PROJECT);

    /**
     * 电站投保信息类型-险种-财产险
     */
    public static final Byte INSURANCE_TYPE_CAICHANXIAN = 1;

    /**
     * 电站投保信息类型-险种-其他险
     */
    public static final Byte  INSURANCE_TYPE_QITAXIAN = 2;

    /**
     * 电站投保信息类型-投保类型-手动
     */
    public static final Byte INSURE_TYPE_MANUAL = 1;

    /**
     * 电站投保信息类型-投保类型-邮件
     */
    public static final Byte INSURE_TYPE_MAIL = 2;


    /**----------------------------------用户来源类型------------------------------**/

    public static final Byte USER_SOURCE_WEB = 1;//用户来源-后台添加

    public static final Byte USER_SOURCE_APP = 0;//用户来源-后台添加

    /**----------------------------------用户状态类型------------------------------**/

    public static final Byte USER_STATUS_NORMAL = 1;//用户状态-正常
    public static final Byte USER_STATUS_DISABLE = 0;// 用户状态-禁用


    /**----------------------------------用户性别类型------------------------------**/
    public static final Byte USER_GENDER_MAN = 0;  //男
    public static final Byte USER_GENDER_WOMAN = 1;  //女
    public static final Byte USER_GENDER_NUKNOW = 2;  //未知


    /**----------------------------------用户审核类型------------------------------**/
    public static final String USER_APPROVE_WAITING = "WAITING";  //待审核
    public static final String USER_APPROVE_PASS = "PASS";  //审核通过
    public static final String USER_APPROVE_REJECT = "REJECT";  //审核拒绝
    public static final String USER_APPROVE_APPROVED = "APPROVED";//已审核


    /**----------------------------------结算类型------------------------------**/
    public static final Byte SETTL_ZF = 1;  //资方结算
    public static final Byte SETTL_BW = 2;  //并网结算
    public static final Byte SETTL_ZL = 3;  //资料结算


    /**-------------------------订单操作类型-----------------------**/
    /**
     * 其他状态可以复用订单状态操作：
     * 待审核、审核通过、拒绝、整改、整改审批等
     */
    public static final String OPT_NEW = "NEW";
    public static final String OPT_UPDATE = "UPDATE";
    public static final String OPT_SEARCH = "SEARCH";


    /**-------------------------banner 类型-----------------------**/
    public static final String BANNER_INDEX= "INDEX";  //启动页
    public static final String BANNER_HOME= "HOME";    //home主页

    /**-------------------------消息类型-----------------------**/
    public static final String  MESSAGE_CODE_NOTICE = "MESSAGE_CODE_NOTICE";  //公告
    public static final String  MESSAGE_CODE_VERSION = "MESSAGE_CODE_VERSION";  //版本
    public static final String  MESSAGE_CODE_USERS_MSG = "MESSAGE_CODE_USERS_MSG";  //用户消息

    /**-------------------------系统类型-----------------------**/
    public static final String  SYSTEM_CODE_ORDER = "SYSTEM_CODE_ORDER";  //博光业务系统-订单
    public static final String  SYSTEM_CODE_STO = "SYSTEM_CODE_STO";  //博光业务系统-供应链


    /**-------------------------角色-----------------------**/
    /**
     * 超级管理员的
     */
    public static final String ROLE_SUPER_ADMIN = "SUPER_ADMIN";

    /**
     * 业务员
     */
    public static final String ROLE_USER = "USER";

    /**
     * 业务主管
     */
    public static final String ROLE_BIZ_ADMIN = "BIZ_ADMIN";

    /**-------------------------非总公司允许看全部订单的角色列表-----------------------**/
    public static final List<String> SUB_COMPANY_ALLOW_ALL_ORDER_ROLE_LIST = Arrays.asList(
            ROLE_BIZ_ADMIN //业务主管
    );

    /**-------------------------权限-----------------------**/
    public static final String PER_BIZ_HY = "PER_BIZ_HY";  //可创建业务-户用
    public static final String PER_BIZ_GSY = "PER_BIZ_GSY";  //可创建业务-工商业
    public static final String PER_BIZ_ZXTJ = "PER_BIZ_ZXTJ";  //可创建业务-整县推进
    public static final String PER_BIZ_ZZD = "PER_BIZ_ZZD";  //可创建业务-真租顶

    public static final String PER_APPROVAL_TA_KAN = "PER_APPROVAL_TA_KAN";  //踏勘审核员

    public static final String PER_APPROVAL_KAN_CHA = "PER_APPROVAL_KAN_CHA";  //勘察审核员
    public static final String PER_APPROVAL_BIZ = "PER_APPROVAL_BIZ";  //商务审核
    public static final String PER_APPROVAL_DESIGN = "PER_APPROVAL_DESIGN";  //设计审核
    public static final String PER_APPROVAL_CONSTRUCT = "PER_APPROVAL_CONSTRUCT";  //施工审核
    public static final String PER_APPROVAL_GRID = "PER_APPROVAL_GRID";  //并网审核
    public static final String PER_APPROVAL_FINANCE = "PER_APPROVAL_FINANCE";  //财务审核（结算需要权限）

    public static final String PER_CONSTRUCT = "PER_CONSTRUCT";//施工上传员
    public static final String PER_GRID = "PER_GRID";//并网上传员
    public static final String PER_DESIGN = "PER_DESIGN";//设计上传员
    public static final String PER_JSKC = "PER_JSKC";//技术勘察员
    public static final String PER_FINANCE = "PER_FINANCE";//财务上传员

    public static final String PER_BAZXX = "PER_BAZXX";//备案证管理员

    public static final String STO_FIRST_ADMIN = "STO_FIRST_ADMIN";//一级仓库管理员

    public static final String STO_SECOND_ADMIN = "STO_SECOND_ADMIN";//二级仓库管理员



    /**-------------------------可以编辑订单的权限列表-----------------------**/
    public static final List<String> USER_CAN_EDIT_ORDER_PER = Arrays.asList(
            PER_JSKC ,  PER_DESIGN , PER_CONSTRUCT , PER_GRID , PER_FINANCE
    );

    /**-------------------------可以仓库的权限列表-----------------------**/
    public static final List<String> USER_STO_PER = Arrays.asList(
            STO_FIRST_ADMIN ,  STO_SECOND_ADMIN
    );



    /**-------------------------非总公司允许看全部订单的权限列表-----------------------**/
    public static final List<String> SUB_COMPANY_ALLOW_ALL_ORDER_PER_LIST = Arrays.asList(
            PER_APPROVAL_BIZ,       //商务审核
            PER_APPROVAL_TA_KAN,   //业务踏勘审核
            PER_JSKC,              //技术勘察
            PER_DESIGN ,           //设计上传
            PER_CONSTRUCT ,        //施工上传
            PER_GRID ,             //并网上传
            PER_FINANCE            //财务上传
    );


    /**-------------------------权限关键字分组类型-----------------------**/

    public static final List<String> PERMISSIONS_GROUP_ZZD_APPROVAL_LIST = Arrays.asList(
            PER_APPROVAL_KAN_CHA,
            PER_APPROVAL_BIZ,
            PER_APPROVAL_DESIGN,
            PER_APPROVAL_CONSTRUCT,
            PER_APPROVAL_GRID,
            PER_APPROVAL_FINANCE
    );
    public static final List<String> PERMISSIONS_GROUP_ZZD_UPLOAD_LIST = Arrays.asList(
            PER_CONSTRUCT,
            PER_GRID,
            PER_DESIGN,
            PER_JSKC,
            PER_FINANCE
    );

    public static final List<String> PERMISSIONS_GROUP_BIZ_LIST = Arrays.asList(
            PER_BIZ_HY,
            PER_BIZ_GSY,
            PER_BIZ_ZXTJ,
            PER_BIZ_ZZD
    );

    public static final String  PERMISSIONS_GROUP_APPROVAL = "PERMISSIONS_GROUP_APPROVAL";//权限分组-ZZD-上传员
    public static final String  PERMISSIONS_GROUP_UPLOAD = "PERMISSIONS_GROUP_UPLOAD";  //权限分组-ZZD-审核员
    public static final String  PERMISSIONS_GROUP_BIZ = "PERMISSIONS_GROUP_BIZ";  //权限分组-业务类型


    /**-------------------------越秀合同类型-----------------------**/

    /**
     * 博通屋顶租赁协议23.04.03.pdf
     */
    public static final String TENANT = "TENANT";

    /**
     *博通_合作共建_购买合同（直租）.pdf
     */
    public static final String SELLER = "SELLER";

    /**
     *博通-合作共建-运维确认书.pdf
     */
    public static final String FACTORY = "FACTORY";



}
